package server.adapter;

import server.http.Request;
import server.http.Response;
import server.connector.Connector;

/**
 * 由于协议不同，客户端发过来的请求信息也不尽相同，Tomcat定义了⾃⼰的
 * Request类来封装这些请求信息。ProtocolHandler接⼝负责解析请求并⽣成
 * Tomcat Request类。但是这个Request对象不是标准的ServletRequest，不
 * 能⽤Tomcat Request作为参数来调⽤容器。Tomcat设计者的解决⽅案是引
 * ⼊CoyoteAdapter，这是适配器模式的经典运⽤，连接器调⽤
 * CoyoteAdapter的Sevice⽅法，传⼊的是Tomcat Request对象，
 * CoyoteAdapter负责将Tomcat Request转成ServletRequest，再调⽤容器
 *
 * @author caiwei
 * @date 2020-10-12 0:29
 */
public interface Adapter {

    Connector getConnector();

    void setConnector(Connector connector);

    void service(Request request , Response response);
}
